package com.A21.GuoSai.demo.atom_adjust.mapper;

import com.A21.GuoSai.demo.service_entity.entity.atom.AtomServicePojo;
import com.A21.GuoSai.demo.service_entity.entity.atom.DynamicVarPojo;
import com.A21.GuoSai.demo.service_entity.entity.atom.StaticVarPojo;
import com.A21.GuoSai.demo.service_entity.entity.workflow.DynamicVarValuePojo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface AtomServiceMapper {
    //    获取所创建的全部原子服务的基本信息
    public List<AtomServicePojo> getAllAtomServices();

    //获取所有原子服务的全部详细信息（包括静态变量）
    public List<AtomServicePojo> getAllAtomServiceStaVarMessages();

    //    获取原子服务的姓名
    public List<String> getAtomNames();

    public List<String> getAtomMethodInfo();

    //    根据原子服务名获取原子服务的Id
    public Integer getAtomIdByName(@Param("atomName") String atomName);

    public StaticVarPojo  getStaticVarByName(@Param("atomName") String atomName,@Param("s_name") String s_name);

    public List<StaticVarPojo> getAtomStaticVar(AtomServicePojo atomService);

    public List<DynamicVarPojo> getAtomDynamicVar(AtomServicePojo atomService);

    //    根据工作流包含的所有原子服务Id添加动态变量信息，动态变量只要传入
    public List<DynamicVarValuePojo> getAtomDynamicVarByAtomIds(List<Integer> atomIds);

    //    新增原子服务
    public void insertAtomService(AtomServicePojo atomService);

    //    添加原子服务对应的静态参数名
    public void insertAtomStaticVar(StaticVarPojo staticVarPojo);

    //    添加原子服务对应的动态参数名
    public void insertAtomDynamicVar(DynamicVarPojo dynamicVarPojo);

    //    更新原子服务的作者、存款属性、id信息
    public void updateAtom_Author_Attr(@Param("author") String author,@Param("attr") String attributeConnnect,
                                       @Param("id")  Integer id);

    //    修改原子服务的基本信息
    public void updateAtom(@Param("newAtom") AtomServicePojo atomService);

    //  删除staticVar和dynamicVar两张表的相同变量
    public void deleteSameAtom();
}
